package com.mr.productclient.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.mr.productclient.utils.ConstantEnum;
import lombok.Data;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.Entity;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.Date;
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })//转成json时忽略（解决报错）
//No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer
@Entity//对象与数据库对应（默认驼峰）
@Data//自动会生成set/get方法
@DynamicUpdate//时间自动更新
//@Table("T_...") 加入对象名称跟数据库不对应，可以声明表名称
public class ProductInfo {
    @Id//主键
    @JsonProperty("id")//反馈给前端的名称
    private String productId;
    /*名字*/
    @JsonProperty("name")
    private String productName;
    /*单价*/
    @JsonProperty("price")
    private BigDecimal productPrice;
    /*库存*/
    private int productStock;
    /*描述*/
    @JsonProperty("description")
    private String productDescription;
    /*小图*/
    @JsonProperty("icon")
    private String productIcon;
    /*状态：0正常1下架*/
    private int productStatus = ConstantEnum.PRODUCT_UP.getCode();
    /*类目编号*/
    private int categoryType;
    private Date createTime;
    private Date updateTime;
    @JsonIgnore//转成json时忽略
    public String getProductStatusMessage(){
        return ConstantEnum.getConstantEnum(productStatus);
    }
}
